import kdApis from '../../api/modularApi/kdApi.js'
import { msg, checkForm, urlToJson } from '../../utils/utils'

const toLogin = () => {
	uni.redirectTo({
		url: '/views/login/Login'
	})
}

// 账号密码登录
const login = async (info, fun) => {
	await checkForm(info, {
		username: "请输入用户名/账号！",
		password: "请输入密码！"
	})
	const sInfo = {
		lcid: "2052",
		acctID: "654a46fc2a5c11"
	}
	Object.assign(sInfo, info)
	let res = await kdApis.login(sInfo)
	if (res) {
		// 存账号信息，每次查询时先进行登录
		uni.setStorageSync('account', sInfo)
		let role = await getRole(res.Context)
		if (!role.length) return msg('当前账户无角色权限！')
		fun()
	}
}

const getRole = async (info) => {
	// 1.查用户，有司机信息则为司机
	//			没司机信息有联系信息则查询员工信息并获取角色
	//			均没有则请求员工信息获取员工信息并获取角色
	// 用户不存在 0
	// 司机 1
	// 业务员 3
	// 技术员 5
	// 养殖场会计 7
	// 普通员工 9  只有查询权限
	// 公司管理员 11
	// 其他用户 99
	info.role = []
	let userInfo = await kdApis.formView({
		formId: 'SEC_User',
		data: { Id: info.UserId }
	}, false, true)
	if (userInfo) {
		uni.setStorageSync('userInfo', userInfo)
		console.log(userInfo)
		if (userInfo.F_QUQY_Driver_Id) {
			// 司机
			info.role = [1]
		} else {
			// 去查员工信息 使用管理员去查
			if (userInfo.FLinkObject_Id) {
				let memberInfo = await kdApis.formView({
					formId: 'BD_Empinfo',
					data: { Number: userInfo.FLinkObject.Number }
				}, false, true)

				if (memberInfo) {
					uni.setStorageSync('memberInfo', memberInfo)
					if (memberInfo.F_QUQY_MulTYPE.includes('业务员')) info.role.push(3)
					if (memberInfo.F_QUQY_MulTYPE.includes('技术员')) info.role.push(5)
					if (memberInfo.F_QUQY_MulTYPE.includes('财务')) info.role.push(7)
					if (memberInfo.F_QUQY_MulTYPE.includes('普通员工')) info.role.push(9)
					if (memberInfo.F_QUQY_MulTYPE.includes('公司管理员')) info.role.push(11)
				}
			}
		}
	}
	// info.role = [3, 5, 7]
	uni.setStorageSync('myInfo', info)
	return info.role
}

export {
	login
}